package ucla.encuestaMatic.modelo.data;

import java.io.Serializable;
import java.util.ResourceBundle;

import org.hibernate.validator.ClassValidator;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.NotNull;

import com.jgoodies.binding.beans.Model;

public abstract class DataGenerica extends Model implements Serializable {
	
	public final static String DATA_ACTIVO = "A"; 
	public final static String DATA_INACTIVO = "I";
	public final static String ESTADO = "estado";
	
	protected String estado = "A";
	protected ClassValidator validador = null;
	private String auxBinding;	

	public abstract String toString();	
	public abstract boolean equals(DataGenerica objeto);
	
	public DataGenerica(Class clase){
	    super();
		ClassValidator validator = new ClassValidator(clase, ResourceBundle.getBundle("com.obelisco.modelo.data.hibernate-validator"));
		this.validador = validator;
		this.auxBinding = null;
	}
	
	public DataGenerica(Class clase, String auxBinding){
		super();
		ClassValidator validator = new ClassValidator(clase, ResourceBundle.getBundle("com.obelisco.modelo.data.hibernate-validator"));
		this.validador = validator;
		this.auxBinding = auxBinding;
	}

    @NotNull(message="{error.notnull}")
    @NotEmpty(message="{error.notempty}")
	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}
	
	public String getAuxBinding() {
		return auxBinding;
	}

	public void setAuxBinding(String auxBinding) {
		this.auxBinding = auxBinding;
	}
	
	public ClassValidator getValidador() {
		return validador;
	}
	
	public void setValidador(ClassValidator validador) {
		this.validador = validador;
	}
	
	public boolean equals(Object objeto) {
		if (objeto instanceof DataGenerica) {
			return equals((DataGenerica)objeto);
		}
		return false;
	}
	
}
